Whiteboarding

Blog, System Design
Featured Video Play Icon

Back when I was in grade school, all we had were blackboards and chalk. Also, it was uphill to school both ways and phones were mounted on the wall. Ugh, I’ll never forget the sound of chalk…or the taste.

But, we’re not here to talk about the old days. Nope, we’re here to talk about whiteboards. Well, whiteboarding really. Which doesn’t even have to be on an actual whiteboard. No, today, we are going to talk about whiteboarding as a concept and how it is used in building software.

Drawing Pictures

What do I mean by whiteboarding? It is the concept of using a medium that can be used to convey an idea, collect information, or facilitate a conversation. Think of it like a tool that can be used in working with others to assist in communication.

When whiteboarding, you could be creating a list of things to do, sketching out what a UI might look like for a website, or maybe you’re designing a system using a diagram. You could be doing this alone, with a team co-located, or even online with people on the other side of the world.

Let’s pretend that we are tasked with creating an address book app. Maybe business has already handed you a list of requirements and you need to plan out the different parts of the system. Sometimes, when you are presented with something like this, creating a high-level diagram can help make sense of a system.

If I were to whiteboard this system, I would draw a vertical screen and start putting together what the UI would look like. With others working with me, we would each add our ideas on how to translate the requirements to an actual system. Sometimes, you might start with the domain of the system, which is basically what the data looks like. From there, you might start laying out a database diagram. Maybe you just need to write out the list of requirements and have discussions around each of them, collecting notes on the whiteboard.

Sure, you might be drawing pictures on a whiteboard, but it is important to understand that what whiteboarding really is. It is an interactive form of conversation facilitation.

The Medium

I mentioned earlier that whiteboarding doesn’t even have to be on an actual whiteboard. It could be on a piece of paper or a napkin. Tons of ideas have been hashed out on a napkin. You could whiteboard on a blackboard, although I would never recommend that. The medium could even be on a digital whiteboard.

The medium used is important. Only so many people can sit around a napkin and see the content, but if it is just you or you and a teammate, maybe that is perfect. Whiteboards and blackboards are great for all kinds of different sessions. Solo, a small group, or even a conference room. I’ve seen whiteboarding done at a few conferences I’ve attended…it works. And obviously, using a digital whiteboard allows you to work directly with others across the world.

Prominence

As a developer, you will find yourself whiteboarding a lot. I always make sure I have a whiteboard nearby, or at the very least, some paper. I find that having a place to draw out problems or ideas is as important as having a computer to code it.

If you are working on a team, chances are, you are going to have some form of board that the team can write on. Whiteboarding can be a major part of team planning. If a team does not have access to a board to collaborate on, I believe they are missing a vital development tool.

During your career, you will work with all kinds of people in several different professions. If you have a UX team, they might work with you on how they want the UI to work. Instead of going back and forth with mockups and questions via email, working together in front of a board can move the process at a much faster pace.

I’ve had to work with businesspeople, networking people, quality assurance people, clients, and even the dreaded HR people (kidding). I have found myself in front of a board of some form, working together, more often than not.

Persistence

Whiteboarding is a concept. The result of whiteboarding should be transferred to a more persistent medium if the outcome requires it. Drawings, diagrams, lists, and other things put up on a board during a session should be considered temporary. A whiteboard can and should be able to be erased at any time. Paper will probably end up thrown away or lost, even digital sessions, with the ability to save the results, should still be considered temporary. If the outcome warrants persistence, transfer it to something meant for that type of outcome.

If you created a list of things to do, consider putting them in software that organizes work (jira). If you created some diagrams, put it in some charting software (lucid). I highly recommend finding the right place to transfer whiteboarding session outcomes to.

I have seen instances where the result of a whiteboarding session stayed up on the board so long that no one remembered what it was from, but everyone was afraid to erase it. When we finally decided it had to go, the eraser did nothing, the spray only lightened the stuff a bit. I mean with enough spray and scraping, we were able to get it off, but I really had wished I brought some WD-40 that day…

So, if you need to take the result of a session, take a picture with the intention of moving it somewhere more permanent. Also, remember that not everyone writes readable text and not everyone draws good pictures. Whiteboarding is a step in the process of a more fluid form of communication and documentation.

A Session

Now that I’ve over-explained whiteboarding, what does whiteboarding look like? Let’s use an example. Say we have a small team of people consisting of a businessperson, a few developers and a couple quality assurance people. This team is in a planning session to hash out the details of the work they need to do for the week. In this example, everyone is in a single room, scattered about, but everyone has a direct view to a whiteboard on the wall. There is typically a person at the board, writing or drawing out the discussion as needed. There might be times that another member comes up and adds some things. Maybe the QA person draws an arrow to a specific spot on the board with a note about how to test a piece of something.

In this session, the teams’ goal is to figure out the work to be done. They want to find any details that lack clarity or things that they might be unsure about. They want to ensure that at the end of the session, they at least have enough of an idea of the work to be able to go back and start working on it.

At the end of this session, the businessperson might add notes to the project software, the developers might create some diagrams in a diagramming system. Some fluid documentation might be adjusted, created, added.

Wrap up

Whiteboarding is a form of communication. It is a facilitator. It’s a temporary holding area. It is a way to capture ideas, concepts, designs and more. It can be done on a napkin by yourself, a whiteboard with a team, or on a digital system. The outcome of a session can be taken to a different, more persistent medium. As a developer, you will use this concept in almost all aspects of your career, and you will interact with several people of several roles.

I will say that even though whiteboarding doesn’t have to be done on an actual whiteboard with dry erase markers, there is nothing more satisfying than popping the top off of a marker, getting that sweet, sweet aroma of whatever chemicals they use, and then hearing that sound of the marker sliding across the board.

So now that you know how to harness the true power of a whiteboard, go get one for yourself and then you can show all of your friends how awesome you really are.